package com.crm.common.crm.entity.BO;

import com.crm.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import lombok.Data;

@Data
public class BillCrmLoanOrderBO {

    /**
     * 小订单
     */
    private List<BillCrmLoanOrderDetailBO> crmLoanOrderDetailBOList;

    /**
     * 退款订单
     */
    private  BillCrmFinanceDropoutPaySubOrderBo dropoutPaySubOrderBo;

    private BillCrmFinancePreferentialOrderBo preferentialOrderBo;

    private static final long serialVersionUID = 1L;

    /**
     * 佣金比例
     */
    private Long commissionRate;

    /**
     * 分销人
     */
    private Long fxUserId;

    /**
     * 佣金
     */
    private BigDecimal commission;


    /**
     * 订单主键
     */
    private Long orderId;


    /**
     * 机构名称
     */
    @Excel(name = "机构名称")
    private String orgName;

    /**
     * 学员id
     */
    @Excel(name = "学员id")
    private Long userId;

    /**
     * 贷款申请id
     */
    @Excel(name = "贷款申请id")
    private Long applicationId;

    @Excel(name = "学员真实姓名")
    private String realName;

    @Excel(name = "学员身份证号码")
    private String card;

    /**
     * 手机号
     */
    @Excel(name = "手机号")
    private String userPhone;

    /**
     * 订单编号
     */
    @Excel(name = "订单编号")
    private String orderNum;

    /**
     * 课程Id
     */
    @Excel(name = "课程Id")
    private Long curriculumId;

    /**
     * 课程名称
     */
    @Excel(name = "课程名称")
    private String curriculumName;

    /**
     * 贷款金额
     */
    @Excel(name = "贷款金额")
    private BigDecimal loanMoney;

    /**
     * 分期期数
     */
    @Excel(name = "分期期数")
    private Integer periods;

    /**
     * 分期类型 0账单分期 1全额贷款
     */
    @Excel(name = "分期类型 0账单分期 1全额贷款")
    private Integer installType;

    /**
     * 申请通过时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "申请通过时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date applicationTime;

    /**
     * 已收款金额
     */
    @Excel(name = "已收款金额")
    private BigDecimal collectMoney;

    /**
     * 待还款金额
     */
    @Excel(name = "待还款金额")
    private BigDecimal waitRepaidMoney;

    /**
     * 还款状态：1还款中,2已还清,3已逾期,4已代偿,5已退学
     */
    @Excel(name = "还款状态：1还款中,2已还清,3已逾期,4已代偿,5已退学,6退学中")
    private Integer repaidStatus;

    /**
     * 还款状态：1还款中,2已还清,3已逾期,4已退学
     */
    @Excel(name = "还款状态：1还款中,2已还清,3已逾期,4已退学，5已退学，6退学中")
    private Integer studentRepaidStatus;

    /**
     * 创建人
     */
    @Excel(name = "创建人")
    private Long createUserId;

    /**
     * 更新人
     */
    @Excel(name = "更新人")
    private Long updateUserId;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remarks;

    /**
     * 退学时间
     */
    @Excel(name = "退学时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date dropoutTime;

    /**
     * 退学退费金额
     */
    @Excel(name = "退学退费金额")
    private BigDecimal dropoutMoney;

    @Excel(name = "逾期时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date overdueDate;

    @Excel(name = "逾期天数")
    private Integer overdueDaysNum;

    @Excel(name = "已还期数")
    private Integer collectPeriods;

    @Excel(name = "平台服务费率")
    private BigDecimal serviceProportion;

    private String contractNo;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    private Long dropOutId;

    private Integer dropStatus;

    private String opinion;

    private Date dropAuditTime;

    /**
     * 三方信用Id
     */
    private Long sid;

    /**
     * 是否需要电审
     */
    private Integer needTeleexamination;

    /**
     * 风险提示： 0 正常 1 高风险
     */
    private Integer riskLevel;

    private Integer serviceChargeType;

    private BigDecimal serviceCharge;

    /**
     * 是否需要补款 0不需要 需要
     */
    private Integer needDraw;

    /**
     * 补款订单号
     */
    private String fillOrderNum;

    /**
     * 补款金额
     */
    private BigDecimal fillMoney;

    /**
     * 补款服务费
     */
    private BigDecimal fillServiceCharge;

    /**
     * 退学申请时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date dropoutApplyTime;

    /**
     * 逾期延期时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date delayDay;

    /**
     * 逾期延期  0否 1是
     */
    private Integer overdueDelay;

    /**
     * 是否主动支付  0否 1是
     */
    private Integer payment;

    /**
     * 行为风险： 0 正常 1 行为高风险
     */
    private Integer behaviorRisk;

    /**
     * 账单渠道名称
     */
    private String billReturnType;

    /**
     * 优惠金额
     */
    private BigDecimal preferMoney;

    private Boolean verify;

}
